<template>
  <div class="dashboard">
    仪表盘

    <div style="width: 600px; height: 600px;" ref="lineRef"></div>

    <div style="width: 600px; height: 600px;" ref="pieRef"></div>
  </div>
</template>

<script lang="ts" setup>
import {onMounted, ref} from 'vue'
import * as echarts from 'echarts'

const lineRef = ref()
const pieRef = ref()

// 创建 Echarts 实例，需要基于准备好的dom，初始化echarts实例
// 所以在生命周期钩子 onMounted() 中处理
onMounted(() => {
  // 创建 echarts 实例
  const line = echarts.init(lineRef.value)
  // 绘制图表
  line.setOption({
    // 标题
    title: {
      text: 'ECharts 入门示例', // 主标题
      // subtext: '子标题', // 副标题
    },
    // 提示工具
    tooltip: {},
    // x坐标
    xAxis: {
      data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
    },
    // y坐标
    yAxis: {},
    // 序列
    series: [
      {
        name: '日销量',
        type: 'bar', // bar: 柱形图  line: 折线图
        data: [5, 20, 36, 10, 10, 20]
      },
      {
        name: '周销量',
        type: 'bar', // bar: 柱形图  line: 折线图
        data: [15, 40, 76, 30, 20, 25]
      },
      {
        name: '月销量',
        type: 'line', // bar: 柱形图  line: 折线图
        data: [95, 140, 176, 130, 120, 116]
      },
    ]
  })
})

onMounted(() => {
  var myChart = echarts.init(pieRef.value);
  var option;

  option = {
    tooltip: {
      trigger: 'item'
    },
    legend: {
      top: '5%',
      left: 'center'
    },
    series: [
      {
        name: 'Access From',
        type: 'pie',
        radius: ['10%', '60%'],
        avoidLabelOverlap: false,
        padAngle: 5,
        itemStyle: {
          borderRadius: 10
        },
        label: {
          show: false,
          position: 'center'
        },
        emphasis: {
          label: {
            show: true,
            fontSize: 40,
            fontWeight: 'bold'
          }
        },
        labelLine: {
          show: false
        },
        data: [
          { value: 1048, name: '袜子' },
          { value: 735, name: '衣服' },
          { value: 580, name: '裤子' },
          { value: 484, name: '裙子' },
          { value: 300, name: '拖鞋' }
        ]
      }
    ]
  };

  option && myChart.setOption(option);
})
</script>

<style lang="less" scoped>

</style>
